Crate jget

source ·
Expand description
 use jget_derive::Jget;


 #[derive(Debug, Jget)]
 pub struct SimpleStructExample {
     #[jget(get="body.get_value():Option<u8>, body.get_data():Option<u16>")]
     pub body: SimpleEnumExample,
 }

 #[derive(Debug, Jget)]
 pub enum SimpleEnumExample {
     Read {
         #[jget(get_option)]
         value: u8,
     },
     Write {
         #[jget(get_option)]
         value: u8,
         #[jget(get_option)]
         data: u16,
     }
 }



 fn main() {
     let value = SimpleStructExample{ body: SimpleEnumExample::Read { value: 1 } };
     assert_eq!(value.get_value(), Some(1));
     assert_eq!(value.get_data(), None);

     let value = SimpleStructExample { body: SimpleEnumExample::Write { value: 1, data: 2 }};
     assert_eq!(value.get_value(), Some(1));
     assert_eq!(value.get_data(), Some(2));
 }